繁体   English   中英

如何在数组上迭代以定义承诺链的数量?

[英]How to iterate on array to define the number of promise chains?

我想从chai npm模块向http.request(url).post(uri)添加链接,以进行摩卡测试feramework。 所以我需要添加fieldattach用于发布的promise,只要来自数组的值作为这些chai方法的参数传递如下:

 var props = ['name:Sara', 'email:sara@mail.com', 'password:pass']; var route = '/app/login'; chaiHttp.request(url).post(route) ./* add field promises as much as the array length */ .then(function(res){ // do something with this res }); 

我已经做了这样的事情:

 var props = ['name:Sara', 'email:sara@mail.com', 'password:pass']; var route = '/app/login'; chaiHttp.request(url).post(route).field('name','Sara').field('email','sara@mail.com').then(function(res){ //do something with response }); 

post()返回的promise应该是then()调用的接收者,但是我认为您担心插入的field()调用会带来一些危害。

但是您提供的硬编码版本证明了现场呼叫会传播其接收者,因此可以将它们链接起来。 因此,完全可以执行以下操作:

var postPromise = chaiHttp.request(url).post(route);  // this won't start until your code returns from the event loop
['name:Sara', 'email:sara@mail.com', 'password:pass'].forEach(function(pair) {
    var components = pair.split(':');
    postPromise.field(components[0], components[1]);
});
postPromise.then(function(res) {
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM