我是 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/