如何在 javascript/node..... 中执行简单的 yield?
How to perform a simple yield in javascript/node....?
我已经尝试了以下几种组合,但都没有效果。我只是想在准备好时暂停执行并 return 到路由器功能,然后释放响应。这可能吗?
var express = require('express');
var router = express.Router();
var request = require('request');
router.get('/', function(req, res, next) {
var result = getJson();
res.render('index', { title: result});
});
function *getJson(){
yield request('https://myjson.json', function (error, response, body){
return body;
});
}
module.exports = router;
您要查找的是 async
/await
,而不是 yield
。 yield
用于枚举的时候。您可以在 Mozilla Developer Network and this SO answer.
上阅读更多相关信息
async
/await
都是 ECMAScript 7 语言特性,因此它们在浏览器中还不可用。您可以使用 Traceur compiler to translate/compile/transpile ES7 code into ES5 code, but I haven't tried it. An example can be found here.
generator
s 和 yield
的使用方式与 async
/await
类似,详情请参考 check out this article by Jake Archibald。
我已经尝试了以下几种组合,但都没有效果。我只是想在准备好时暂停执行并 return 到路由器功能,然后释放响应。这可能吗?
var express = require('express');
var router = express.Router();
var request = require('request');
router.get('/', function(req, res, next) {
var result = getJson();
res.render('index', { title: result});
});
function *getJson(){
yield request('https://myjson.json', function (error, response, body){
return body;
});
}
module.exports = router;
您要查找的是 async
/await
,而不是 yield
。 yield
用于枚举的时候。您可以在 Mozilla Developer Network and this SO answer.
async
/await
都是 ECMAScript 7 语言特性,因此它们在浏览器中还不可用。您可以使用 Traceur compiler to translate/compile/transpile ES7 code into ES5 code, but I haven't tried it. An example can be found here.
generator
s 和 yield
的使用方式与 async
/await
类似,详情请参考 check out this article by Jake Archibald。