首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Fabric.JS不处理承诺或回调

Fabric.JS不处理承诺或回调
EN

Stack Overflow用户
提问于 2018-05-15 14:22:33
回答 1查看 1.2K关注 0票数 2

因此,我使用一个名为fabric.js (Node.JS,而不是针对浏览器)的Node.JS/NPM库,这是一种奇怪的方法。

代码语言:javascript
运行
复制
//Make a new Canvas object (`fabric.createCanvasForNode` is not a constructor)
var canvas = new fabric.StaticCanvas(null, {width: 200, height: 200})

  //Make a new Rectangle
  var rect = new fabric.Rect({
    left: 100,
    top: 100,
    width: 100,
    height: 50,
    fill: "red"
  })

//Put the Rectangle on the Canvas
canvas.add(rect)

//Save the image as a PNG
canvas.createPNGStream().pipe(fs.createWriteStream(__dirname + "/output.png"))

唯一的问题是,canvas.add()是一个函数,应该返回一个承诺,但它不是即时的,但它并不适用于承诺(canvas.add(...).then() is not a function)。我试过的下一件事是回调。我试过:

代码语言:javascript
运行
复制
canvas.add(rect, function (err, canvas) {
  console.log("working")
})

随同

代码语言:javascript
运行
复制
canvas.add(rect, function () {
  console.log("working")
})

但两者都犯了以下错误:

代码语言:javascript
运行
复制
C:\Users\me\Documents\my project\node_modules\fabric\dist\fabric.js:3696
            obj._set("canvas", this);
                ^

TypeError: obj._set is not a function
    at klass._onObjectAdded (C:\Users\me\Documents\my project\node_modules\fabric\dist\fabric.js:3696:17)
    at klass.add (C:\Users\me\Documents\my project\node_modules\fabric\dist\fabric.js:152:22)
    at Client.client.on.message (C:\Users\me\Documents\my project\index.js:41:10)
    at emitOne (events.js:115:13)
    at Client.emit (events.js:210:7)
    at MessageCreateHandler.handle (C:\Users\me\Documents\my project\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
    at WebSocketPacketManager.handle (C:\Users\me\Documents\my project\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
    at WebSocketConnection.onPacket (C:\Users\me\Documents\my project\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:330:35)
    at WebSocketConnection.onMessage (C:\Users\me\Documents\my project\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:293:17)
    at WebSocketClient.internalOnMessage (C:\Users\me\Documents\my project\node_modules\uws\uws.js:103:17)

那我该怎么办?我用承诺和/或回调的方式做错了什么吗?难道布料根本就不能支撑它们吗?有什么解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-15 14:30:23

根据文档fabric.StaticCanvas.add方法既不使用Promise也不使用Callback

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50352663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档