提交 d1d09fb8 编写于 作者: R romainmenke 提交者: Jake Champion

always set a signal on Request

上级 7727e504
......@@ -370,7 +370,12 @@ export function Request(input, options) {
}
this.method = normalizeMethod(options.method || this.method || 'GET')
this.mode = options.mode || this.mode || null
this.signal = options.signal || this.signal
this.signal = options.signal || this.signal || (function () {
if ('AbortController' in global) {
var ctrl = new AbortController();
return ctrl.signal;
}
}());
this.referrer = null
if ((this.method === 'GET' || this.method === 'HEAD') && body) {
......
......@@ -1147,7 +1147,20 @@ exercise.forEach(function(exerciseMode) {
})
featureDependent(suite, exerciseMode !== 'native' || support.aborting, 'aborting', function() {
test('initially aborted signal', function() {
test('Request init creates an AbortSignal without option', function() {
var request = new Request('/request')
assert.ok(request.signal);
assert.equal(request.signal.aborted, false);
})
test('Request init passes AbortSignal from option', function () {
var controller = new AbortController()
var request = new Request('/request', {signal: controller.signal})
assert.ok(request.signal);
assert.deepEqual(controller.signal, request.signal);
})
test('initially aborted signal', function () {
var controller = new AbortController()
controller.abort()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册