Tag: es6 promise

怪异的断言与摩卡/柴和ES6诺言

我面对一个奇怪的行为与ES6承诺和一些摩卡/柴testing。 考虑下面的foo()函数返回一个promise,我想testing两件事情: 它返回一个承诺(所以,一个对象) 它会抛出一个exception(所以,一个对象)的失败。 问题是,下面的testingexpect(..).to.be.an('object')在这两种情况下失败,但types是 object (与typeof检查)。 这是我的代码: var chai = require('chai'); var expect = chai.expect; var foo = function (a, b) { return new Promise(function(resolve, reject) { if (a < b) { resolve(); } else { throw new Error('failed'); } }); } describe('foo function', function () { it('should return a promise', function () { […]

如何在蓝鸟协同程序中使用http模块?

如何使用http与蓝鸟。 以下代码没有任何回应 var Promise = require('bluebird'); var co = Promise.coroutine; http = Promise.promisifyAll(require('http')); co(function*(){ var resp = yield http.get("http://i3.ytimg.com/vi/J—aiyznGQ/mqdefault.jpg").endAsync(); console.log(JSON.stringify(resp.body)); })();

nodejs mongodb es6-promise用外键数据获取列表

新增到stackoverflow / nodejs / mongo / promises / es6。 我已经成功地创build了一些简单的查询和插入,使用承诺,但现在已经对墙,所以想我会寻求一些帮助。 我想通过查找一个创build者(所有者)和(锻炼)名称来检索例程列表,以挑选与例程相关的锻炼(1to1)。 我在这里尝试过的想法不是承诺只是callback? 以及如何链接和分享先前的结果与承诺,但似乎无法得到一个循环工作与平面链接的想法。 所以,在伪代码 getRoutineList foreach routine: get user account using Routine.email get workout for Routine, using user._id and Routine.workout_name return the list of routines and workouts 我最初的想法是基于我目前的工作和我有限的经验。 var rp = routines.find( {owner : user_id}).toArray().then( function( routine_list){ for( var i =0; i<routine_list.length; i++){ var routine […]

如何停止使用ES6承诺的asynchronous调用

我熟悉蓝鸟的承诺,在那个.each()是用来一次获取所有logging,并迭代一个logging,以便我能够将该logging传递到另一个函数,并获取数据。 但是在ES6中,我找不到像(.each())这样的函数。 请为我提供任何同步执行的解决scheme。谢谢..

存根nodejs承诺在链中返回错误

我nodejs使用nodejs中的nodejs ,也是在testing它们。 我已经单独testing了各个模块,但是当涉及testingchain of promises ,我遇到了一些麻烦。 我尝试了下面的例子,在npm页面上find了sinon-as-promised的例子,但似乎没有设法控制stream程并触发链中第一个promise的错误。 我正在使用mocha , chai和sinon for作为我sinon的testing, sinon-as-promised和chai-as-promised 。 我试图testing这个模块: 'use strict'; var mySQS = require('./modules/sqs/sqs-manager'); var sWebHook = require('./modules/webhooks/shopify/webhooks'); var main = {}; main.manageShopifyWebhook = function (params, callback) { sWebHook.verify(params.srcHmac, params.rawBody, params.shopName.split('.myshopify.com')[0], params.productId) .then(function(data) { var body = { "params": { "productId": data.productId, "shopName": data.shopName }, "job": "call-update-item" }; mySQS.create_Queue(body) […]

在Promise链中提取函数

我想通过提取出一些function来重构Promise链。 目前我有 const getData = (uuid) => { return new Promise((resolve) => { fetch( // go fetch stuff ) .then((response) => { if (!response.ok) { return resolve(false); } return response; }) .then(fetchres.json) .then(response => { // Do more stuff that requires resolves that I will also want to refactor }) .catch(err => { console.log(err); resolve(false); […]

Node.js和ES6

我想开始在Node.js上使用这个ES6,但我不能让它工作。 我正在添加node test.js –harmony标志,但是我仍然遇到了错误的语法错误。 它甚至不传递第一行代码: import env from 'node-env-file' import api from '../src' 我得到这个 (function (exports, require, module, __filename, __dirname) { import env from 'node-env-file' ^^^^^^ SyntaxError: Unexpected token import 我怎样才能让我的Node.js使用这种types的语法。

通过承诺返回ES6代理时堆栈溢出

我试图拦截ES6代理上的方法调用,以便能够使用从代理获得的信息在两者之间进行操作。 现在在我的情况下,在创build和从某种工厂返回代理之前,有相当多的东西正在进行。 因为所有这些东西,我决定将先决条件包装到promise函数中,这样我就可以将代理创build权链接到它上面,并通过promise链返回结果代理。 以下是重现问题的代码: proxy_factory.min.js 'use strict'; // require('harmony-reflect'); class ProxyFactory { create(options) { const self = this; const handler = { get(target, propertyKey, receiver) { if (propertyKey === 'then') { return function proxyPromiseWrapper(thenCallback) { const innerProxy = self.create(options); return thenCallback(innerProxy); }; } return function resourceFunctionProxy() { const callContext = { target: target, method: propertyKey, […]

用Promises处理Mongoose错误

我在我的Nodejs,REST API中使用mongoose与本地ES6承诺进行数据库pipe理。 我无法finderror handling的最佳做法。 我有一段代码看起来像这样: Cities.findOne({'id': someid}).then((city) => { if (!city) throw 'No city found'; //modify city.embedded.dynamic.field return city.save(); }).then((city) => { if (!city) throw 'City not saved'; res.send(city); }).catch((err) => { console.log(err); }); 是否需要检查city.save()的返回值是否未定义? 或者将在保存中的错误被捕获? 在文档中不清楚save()是否可以像mongoose查询有时那样返回undefined 。 任何帮助,将不胜感激。 编辑 :我使用findOne和手动修改时间表,因为mongoose不能模型dynamic以及embedded架构。

顺序承诺,同时传递价值

我正在玩命运API,我遇到了一些问题。 如果我请求一个字符的详细信息,它会返回一个对象,但是这些值是ID,然后需要将其传递给另一个API调用“清单”,该清单返回该ID的对象。 我正在使用'request-promise'来进行API调用,但这意味着我不得不嵌套调用,我不觉得高兴。 我需要保留一些来自第一个请求的数据,然后再打一个电话来获得最后一个数据。 例如: request('destiny-character-api') .then(character => { // Keep some of the data from character, eg className request(`destiny-manifest-api/${character.item}`) .then(item => { // Overwrite character.item with the value of item.name return item; }); }); 我需要一种方法来阻止第二个请求,直到第一个请求返回,然后将返回值传递给第二个请求。 谢谢