我正在嘗試使用我在github上找到的庫,並且無法調試代碼未啓動的原因。調試器可以在Javascript Promise中調用嗎?
//slackTypeForm.js
var Promise = require('bluebird'),
PromiseObject = require('promise-object')(Promise),
request = require('request'),
_ = require('lodash'),
Cubby = require('Cubby');
Promise.promisifyAll(request);
var SlackAutoInviter = PromiseObject.create({
initialize: function ($config) {
this._typeformUID = $config.typeformUID;
this._typeformKey = $config.typeformKey;
this._typeformEmailField = $config.typeformEmailField;
this._typeformFirstNameField = $config.typeformFirstNameField;
this._typeformLastNameField = $config.typeformLastNameField;
this._slackName = $config.slackName;
this._slackToken = $config.slackToken;
this._dataFile = $config.dataFile;
this._cubby = new Cubby({file: this._dataFile});
this._cubby.set('form-id-since', this._cubby.get('form-id-since') || 1);
},
inviteAll: function ($deferred) {
//調試器不打這裏 調試;
var typeFormResponse = _.first(request.getAsync({url: 'https://api.typeform.com/v0/form/' + this._typeformUID + '?key=' + this._typeformKey + '&completed=true&since=' + this._cubby.get('form-id-since') + '&limit=1000', json: true}));
Promise.map(typeFormResponse.body.responses, this._inviteUser, {concurrency: 5});
this._cubby.set('form-id-since', Math.floor(Date.now()/1000));
$deferred.resolve();
},
_inviteUser: function ($deferred, form) {
var inviteResponse = _.first(request.postAsync({
url: 'https://' + this._slackName + '.slack.com/api/users.admin.invite',
form: {
email: form.answers[this._typeformEmailField],
first_name: form.answers[this._typeformFirstNameField],
last_name: form.answers[this._typeformLastNameField],
token: this._slackToken,
set_active: 'true'
},
json: true
}));
console.log('[INVITE] ' + form.answers[this._typeformFirstNameField] + ' ' + form.answers[this._typeformLastNameField] + ' <' + form.answers[this._typeformEmailField] + '>');
$deferred.resolve(inviteResponse.body);
}
});
module.exports = SlackAutoInviter;
//有沒有關於如何調試這個承諾的信息呢?
//的package.json
{
"name": "slack-typeform-inviter",
"version": "0.0.2",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Chad Scira",
"license": "ISC",
"dependencies": {
"bluebird": "^2.3.10",
"cubby": "0.0.3",
"harmony": "0.0.1",
"lodash": "^2.4.1",
"promise-object": "^0.1.5",
"request": "^2.47.0"
}
}
爲什麼你的函數需要$延期? –