diff --git a/app/extend/context.js b/app/extend/context.js index 6edc2154e1..b34bbaf8d6 100644 --- a/app/extend/context.js +++ b/app/extend/context.js @@ -44,8 +44,8 @@ const proto = module.exports = { * @param {Object} [options] - options for request. * @return {Object} see {@link ContextHttpClient#curl} */ - * curl(url, options) { - return yield this.httpclient.curl(url, options); + curl(url, options) { + return this.httpclient.curl(url, options); }, /** diff --git a/lib/core/context_httpclient.js b/lib/core/context_httpclient.js index b3cccd78b6..65a654e5af 100644 --- a/lib/core/context_httpclient.js +++ b/lib/core/context_httpclient.js @@ -14,14 +14,14 @@ class ContextHttpClient { * @param {Object} [options] - options for request. * @return {Object} see {@link Application#curl} */ - * curl(url, options) { + curl(url, options) { options = options || {}; options.ctx = this.ctx; - return yield this.app.curl(url, options); + return this.app.curl(url, options); } - * request(url, options) { - return yield this.curl(url, options); + request(url, options) { + return this.curl(url, options); } } diff --git a/lib/egg.js b/lib/egg.js index a64eecfcfc..755fa4e61a 100644 --- a/lib/egg.js +++ b/lib/egg.js @@ -159,8 +159,8 @@ class EggApplication extends EggCore { * console.log(result.status, result.headers, result.data); * ``` */ - * curl(url, opts) { - return yield this.httpclient.request(url, opts); + curl(url, opts) { + return this.httpclient.request(url, opts); } /** diff --git a/test/app/extend/context.test.js b/test/app/extend/context.test.js index 1a6ef8a49d..ab41d28aa8 100644 --- a/test/app/extend/context.test.js +++ b/test/app/extend/context.test.js @@ -294,6 +294,12 @@ describe('test/app/extend/context.test.js', () => { const res = yield context.curl(`${localServer}/foo/bar`); res.status.should.equal(200); }); + + it('should curl as promise ok', () => { + return utils.startLocalServer() + .then(localServer => app.mockContext().curl(`${localServer}/foo/bar`)) + .then(res => res.status.should.equal(200)); + }); }); describe('ctx.httpclient', () => {