javascript - 将带有回调的约定 node.js 函数转换为生成器并产生

标签 javascript node.js koa co

我是 koa.js 的新手,非常喜欢它,用它开始了一个项目。我需要使用 twilio 发送短信。

大多数对 twilio 包的调用都遵循这种结构。

public.get('/najam', function *(){
    this.body = "hello from najam";
    //yeild before c.sendSms or inside callback?
    c.sendSms({
        to:'YOUR_PHONE',
    }, function(e, m) {
        if (!e) {
            //yeild here?
        }      
    });
});    

我如何修改它以将其放入生成器函数中以及在什么时候我将使用 yield 关键字?

如果您的回答建议使用 Co 库,请向我提供带有代码和位解释的示例。

最佳答案

我刚刚发现如何在没有 promise 的情况下做到这一点。它非常酷,代码最少且没有外部库。致谢:Josef Sima

function sendSmsAsync(phone) {
  return function(callback) {
    c.sendSms({to: phone}, callback);
  }
}

yield sendSmsAsync("5551212");

这个小片段将任何使用 Node 回调的函数转换为生成器。您也可以将 sendSmsAsync 调用包装在 try..catch 中。并且不要忘记在 Node 中设置 --harmony 选项。

关于javascript - 将带有回调的约定 node.js 函数转换为生成器并产生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35317005/

相关文章:

node.js - 如何将我的 koa 路由拆分为单独的文件?

javascript - 在字符串中搜索多个单词

javascript - 在node.js中,全局对象(或头对象)有名称吗?

javascript - 这个填充函数在哪里定义的?

javascript - 如何创建嵌套 For 循环以在 Nightmare javascript 代码中输入数据

javascript - JQUERY/AJAX-基于内容编号的多个类

javascript - 使用 koa 2 和 mongoose 进行异步/等待

javascript - 如何在带有koa的 react 路由器中使用浏览器历史记录

javascript - 在 Node js中解析反序列化的application/vnd.ms-excel

Node.js w/在回调中表达错误处理