【发布时间】:2016-04-01 18:33:11
【问题描述】:
我正在尝试promisify the native XHR,
现在问题来了,当我使用以下代码时:
function request(method, url) {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onload = resolve;
xhr.onerror = reject;
xhr.send();
});
}
它返回一个 promise 而不是 XHR 对象,
所以我不能以这种方式使用xhr.abort() 之类的东西:
xhr = request('GET', 'http://google.com').then(function (e)
{
// ...code...
}, function (e)
{
// ...code...
});
// When user press the stop button.
xhr.abort();
有没有办法让它返回一个 XHR 对象并仍然保持它的可承诺性?
编辑:这不是问如何承诺 XHR 对象,而是如何让“承诺”的 XHR 对象返回 XHR 对象而不是 Promise。
【问题讨论】:
-
一个想法可能是启发 AngularJS API :stackoverflow.com/questions/13928057/…
标签: javascript ajax promise