如何使用协程中的值或告知何时完成[重复]

2023-12-23

例如,当使用 WWW 类调用 Web API 时,我想要返回一个值或有关何时完成及其状态的一些反馈。


那么,让我向我展示一种巧妙的方法吧!

这里我们创建一个 IEnumerator,它接受一个 Action(在我们的例子中是方法)作为参数,并在 WWW 完成时调用它:

    public static IEnumerator GetSomething(Action<string> callback)
    {
        // The www-stuff isn't really important to what I wish to mediate
        WWWForm wwwForm = new WWWForm();
        wwwForm.AddField("select", "something");
        WWW www = new WWW(URL, wwwForm);
        yield return www;

        if (www.error == null)
        {
            callback(www.text);
        }
        else
        {
            callback("Error");
        }
    }

这就是我们使用它的方式:

StartCoroutine(
    GetSomething((text) => 
    {
        if (text != "Error")
        {
            // Do something with the text you got from the WWW
        }
        else
        {
            // Handle the error
        }
    })
);

我们传入的参数是(text)这是一个无名声明的方法。我们在 IEnumerator 中将其称为“回调”,但它可以被称为任何名称,重要的是它调用我们在调用 GetSomething 方法的参数中声明的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用协程中的值或告知何时完成[重复] 的相关文章

随机推荐

  • 尝试使用 NDK 源代码编译 Android Studio 项目时,任务“:app:compileDebugNdk”执行失败

    无论我遵循了多少教程 每次我尝试创建包含 C 源文件的项目时 gradle 都会输出错误 Error Execution failed for task app compileDebugNdk com android ide common
  • 获取 ITextSharp 支持的字体列表

    我正在使用 ITextSharp 进行一个项目 并正在寻找一种合理的方法来获取可供使用的不同字体的字符串列表 我想也许我可以使用反射并循环一类可用字体 但似乎没有一种简单的方法可以做到这一点 我真正想做的是提供可用 支持的字体下拉菜单 供用
  • 为什么docker在构建镜像的同时还要创建容器?

    为什么 docker 会为 Dockerfile 中的每个命令启动一个容器 我了解为每个命令创建一个新层 Step 1 3 FROM nginx latest latest Pulling from library nginx 8ec398
  • Rails - 根模型或应用程序模型

    我只是环顾了一下 Rails 发现有一个应用程序控制器 但没有应用程序模型 Rails 中没有根模型吗 如果不是 您将在每个模型中都需要的一段代码放在哪里 谢谢 亚历克斯 没有什么说你的控制器必须子类化ApplicationControll
  • strtok 未处理的异常;写入位置访问冲突

    include
  • 使用 Powershell 和文件夹中的文件进行打印

    我有一个可以进行现场打印的脚本 目前它工作得不太好 因为下面的命令适用于发送到文件夹进行打印的各种文件类型 但问题是它一次只能打印 1 个文档 Start Process FilePath c tests docx Verb Print 我
  • 无法使用 Edge.js 从节点服务调用 C# DLL 内的方法

    我正在使用 Edge js 并且能够运行大部分示例 但是当涉及到使用编译的 C dll 文件时 我无法让它工作 我的node js代码是 var clrMethod edge func assemblyFile C Users hello
  • 如何从 Google App 脚本中的自定义对话框窗口获取数据?

    我创建了一个自定义对话框窗口 https developers google com apps script guides dialogs在 Google 电子表格中使用 Google App 脚本 如下所示 如何将数据从窗口获取到电子表格
  • R-使用ggplot在同一图表上为三个数据集创建图例

    我想知道是否可以使用 R 中的 ggplot 为包含多个系列图的图形创建图例框 本质上 这就是我正在做的事情 x lt c 1 2 3 4 y lt c 1 1 1 2 1 3 1 4 y2 lt c 2 1 2 2 2 3 2 4 x3
  • 网站是否也应该是一种网络资源?

    每个网络应用程序 每个网站 都是一项服务 使网站易于网络冲浪者使用的功能也使 Web 服务 API 易于程序员使用 Richardson 和 Ruby RESTFul Web 服务 正如我所希望的那样 同时也是 Web 服务的网站提供其资源
  • 制作模式以使用 NSRegularExpression

    斯威夫特 4 4 我想创建NSAttributedString using NSRegularExpression This two are bold text and different
  • 如何设置圆的物理属性,使其遵循给定的路径

    物理体圈的运动对于我想要实现的目标来说太不稳定了 我想限制它 使其遵循接触特定点 或一系列点 的特定路径 如下图所示 如何设置物理属性以遍历相似的路径 如何设置圆的物理属性 使其遵循给定的路径 因此 本质上您希望使用实时运动将节点移动到特定
  • mmap 是进程间通信的最佳方式吗?

    我使用文件在 Python 和 Ruby 脚本之间进行通信 但是 我们有 mmap 这是我的问题 我可以使用 mmap 做同样的事情 进程之间通信 吗 与物理文件相比 mmap 能给我们带来什么优势 加速 两个进程之间通信的最简单方法是什么
  • Scala:类型注释使尾递归检查失败

    我向此模式匹配添加类型注释只是为了我自己的理解 annotation tailrec def run A io IO A A io match case Return a gt a case Suspend r gt r case Flat
  • 如何制作像类一样的“可变”向量

    我正在尝试创建充当多维向量的类 它不必做任何花哨的事情 我基本上想要一个 容器 类 foo 我可以通过 foo x y z 访问元素 现在我还需要 foo x y 和 foo x 类似的类 这让我思考以下 更一般的 问题 有没有一种方法可以
  • 如何切换被单击的元素并隐藏所有其他元素?

    我想隐藏任何可见的跨度元素 如果有 并在单击元素时再次切换它 div class item a href element1 a span span1 span br div div class item a href element2 a
  • 缓存优先 Service Worker:如何绕过更新资产的缓存?

    这是场景 您有一个当前通过软件缓存的站点 您部署一个新版本 其中包含带有缓存清除版本的更新软件 然后该公司宣布了新功能 然而 人们访问该站点时 即使软件崩溃 它仍然会提供以前的缓存 同时在后台更新其缓存 因此 前来寻求新功能的访问者看不到它
  • Jqgrid + CodeIgniter

    我试图让 jqgrid 与 codeigniter 一起工作 但我做不到 我只想以 json 格式显示表中的数据 但什么也没发生 但我不知道我做错了什么 我看不到包含我正在调用的内容的表格 我的控制器 class Grid extends
  • Angular 2:找不到名称“订阅”

    尝试设置属性的类型时出现错误Cannot find name Subscription 我从哪个包导入它 import Component OnDestroy OnInit from angular core import Activate
  • 如何使用协程中的值或告知何时完成[重复]

    这个问题在这里已经有答案了 例如 当使用 WWW 类调用 Web API 时 我想要返回一个值或有关何时完成及其状态的一些反馈 那么 让我向我展示一种巧妙的方法吧 这里我们创建一个 IEnumerator 它接受一个 Action 在我们的