标签: invoke

在 DOM 元素上调用自定义方法

我想在 DOM 元素上调用自定义方法

像这样 :

<div id="MyObject">
    <!-- some elements -->
</div>

<script>
    function doSomething() {
        // do something with input DOM element
    }

    $("MyObject").doSomething();
</script>
Run Code Online (Sandbox Code Playgroud)

我怎样才能发展这个问题?是否有必要使用jQuery?

javascript methods jquery dom invoke

3
推荐指数
1
解决办法
2696
查看次数

在 PowerShell 中如何将 Invoke-WebRequest 内容与字符串进行比较

在我的网页中,我创建了简单的 php 脚本,该脚本在浏览器上仅将我的 IP 地址显示为网页中的简单文本。

因此,如果我在 PowerShell 中使用此命令:

$ip = Invoke-WebRequest https://www.mypage.com
$ip
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

PS C:\Users\user> $ip
193.60.50.55
Run Code Online (Sandbox Code Playgroud)

如果我检查变量类型: GetType().FullName 我得到:

PS C:\Users\user> $ip.GetType().FullName
System.String
Run Code Online (Sandbox Code Playgroud)

如果我尝试将它与相同的字符串进行比较

PS C:\Users\user> $ip = Invoke-WebRequest https://www.mypage.com
$ip2 = "193.60.50.55"
$ip -eq $ip2
Run Code Online (Sandbox Code Playgroud)

我得到结果“False”,我也尝试使用 -match 和 -like 但结果总是 false

任何想法出了什么问题

string powershell compare webrequest invoke

3
推荐指数
1
解决办法
6065
查看次数

PHP Magic __invoke 类的对象属性

考虑这个类的安排 - 特别是神奇函数 __invoke:

class Barman {  
    public function __construct() {
        // .. .constructor stuff - whatever
    }

    public function makeDrink() {
        return "vodka martini, shaken";
    }   
}

class Bar { 
    private $arr_barmen = array();

    public function __construct() {
        $this->arr_barmen['john'] = new Barman();
    }

   public function __invoke($barman_id) {
      echo "I have been invoked";
      return $this->arr_barmen[$barman_id];
   }

   public function aBarFunc($param) {
      return "yes it worked ," .$param;
   }
}

class Foo {

    public $myBar;

    public function __construct() {
        $this->myBar = new …
Run Code Online (Sandbox Code Playgroud)

php class invoke magic-methods chainability

3
推荐指数
1
解决办法
1951
查看次数

如何使用 Cypress 访问 React 组件的本地状态?

我正在使用 redux 进行反应并使用 cypress 进行测试,我能够使用 cy.window().its('store').invoke('getState').then((state) => {} 但是我如何访问组件的本地状态而不是应用程序商店?

我试过

cy.get('.simple-component').its('getState')
Run Code Online (Sandbox Code Playgroud)

或者

cy.get('.simple-component').invoke('getState')
Run Code Online (Sandbox Code Playgroud)

但赛普拉斯正在返回“赛普拉斯错误:重试超时:cy.invoke() 出错,因为属性:'getState' 在您的主题上不存在”并且在赛普拉斯控制台上(在 chrome 中)它正在发出:

Yielded:   
<div class="simple-component" getstate="[object Object]"></div>
Run Code Online (Sandbox Code Playgroud)

这似乎是由 React 从 DOM 中删除方法造成的,所以我需要在 React 中而不是在 DOM 中访问它?

import React, { Component } from 'react';

class simpleComponent extends Component {
    constructor(props) {
        super(props)
        this.state = {
            sample: "hello"
            }
    }
    // getState() just for testing on cypress
    getState() {
      return this.state
    }
    render(){
      return <div className="simple-component" getState={this.getState()}></div>
    }    
}
Run Code Online (Sandbox Code Playgroud)

作为替代方案,我可以使用 window.store 在简单组件的末尾导出本地组件状态吗?

state invoke reactjs redux cypress

3
推荐指数
1
解决办法
6303
查看次数

使用 localstack 从另一个 lambda 调用 lambda 时出现 UnrecognizedClientException

我正在使用此docker-compose.yml文件在 docker 容器内运行 localstack 。

version: '2.1'

services:
  localstack:
    image: localstack/localstack
    ports:
      - "4567-4597:4567-4597"
      - "${PORT_WEB_UI-8080}:${PORT_WEB_UI-8080}"
    environment:
      - SERVICES=${SERVICES- }
      - DEBUG=1
      - DATA_DIR=${DATA_DIR- }
      - PORT_WEB_UI=${PORT_WEB_UI- }
      - LAMBDA_EXECUTOR=docker
      - KINESIS_ERROR_PROBABILITY=${KINESIS_ERROR_PROBABILITY- }
      - DOCKER_HOST=unix:///var/run/docker.sock
    volumes:
      - "${TMPDIR:-/tmp/localstack}:/tmp/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"
Run Code Online (Sandbox Code Playgroud)

要启动 localstack,我运行TMPDIR=/private$TMPDIR docker-compose up.

我创建了两个 lambda。当我运行时,aws lambda list-functions --endpoint-url http://localhost:4574 --region=us-east-1这是输出。

{
"Functions": [
    {
        "TracingConfig": {
            "Mode": "PassThrough"
        },
        "Version": "$LATEST",
        "CodeSha256": "qmDiumefhM0UutYv32By67cj24P/NuHIhKHgouPkDBs=",
        "FunctionName": "handler",
        "LastModified": "2019-08-08T17:56:58.277+0000",
        "RevisionId": "ffea379b-4913-420b-9444-f1e5d51b5908",
        "CodeSize": 5640253,
        "FunctionArn": "arn:aws:lambda:us-east-1:000000000000:function:handler", …
Run Code Online (Sandbox Code Playgroud)

invoke amazon-web-services aws-lambda localstack

3
推荐指数
1
解决办法
3154
查看次数

Blazor InvokeAsync 与 await InvokeAsync

编辑:为了澄清起见,这是在 Blazor 服务器应用程序中

我对 InvokeAsync 的正确用法和更新 UI 感到困惑。该文档有多种用法,但没有真正解释等待或不等待的原因。我也看到了一些相互矛盾的线索,但没有多少支持他们的推理。

使所有方法异步以等待 InvokeAsync(StateHasChanged) 似乎是错误的,我在某处读到引入 InvokeAsync 的原因是为了防止在任何地方都需要异步代码。但是在什么情况下我可能想要等待它?

等待:

https://docs.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-5.0&viewFallbackFrom=aspnetcore-3.0#invoke-component-methods-externally-to-update-state

非等待丢弃:

https://docs.microsoft.com/en-us/aspnet/core/blazor/components/rendering?view=aspnetcore-5.0

以下是我见过的一些不同用法的示例,如果有人可以解释或分享有关它们之间某些差异的信息的链接,那就太好了(谢谢!)

public void IncrementCounter()
{
    _counter++;
    InvokeAsync(StateHasChanged);
}
Run Code Online (Sandbox Code Playgroud)
public void IncrementCounter()
{
    InvokeAsync(() => 
    {
        _counter++;
        StateHasChanged);
    }
}
Run Code Online (Sandbox Code Playgroud)
public async Task IncrementCounter()
{
    _counter++;
    await InvokeAsync(StateHasChanged);
}
Run Code Online (Sandbox Code Playgroud)
public async Task IncrementCounter()
{
    await InvokeAsync(() =>
    {
        _counter++;
        StateHasChanged();
    });
}
Run Code Online (Sandbox Code Playgroud)

asynchronous invoke async-await blazor blazor-server-side

3
推荐指数
1
解决办法
825
查看次数

C#非UI跨线程调用

我正在尝试用C#进行跨线程调用.

每当我从一个从线程B调用的静态方法调用在线程A的上下文中创建的对象的方法时,该方法总是在线程B中运行.我不希望这样,我希望它在与线程相同的线程上运行我正在调用其方法的对象.

Invoke适用于UI调用,我读过很多文章和SO答案,涉及不同的交叉线程Forms/WPF调用方式.无论我尝试什么(事件处理,委托等)线程A的对象的方法将始终在线程B中运行,如果它由线程B调用.

我应该在图书馆的哪个部分来解决这个问题?如果相关,则线程B当前"旋转",从网络端口读取并偶尔通过在线程A中创建并使用ParameterizedThreadStart传入的委托调用线程A的对象方法.

我不打算改变范例,只是从一个线程(线程B)向另一个线程(线程A)发送消息(调用方法的请求).

编辑:

我的问题是"我应该在图书馆的哪个部分来解决这个问题?" 答案似乎是没有.如果我想清楚地描述消费和民意调查,我将不得不编写自己的代码来处理这个问题.

c# multithreading invoke

2
推荐指数
1
解决办法
2748
查看次数

锁是否需要这个.Invoke

我遇到了第三方代码,它使用invoke来更新控件,但是调用是在一个锁定语句中,例如

 lock (mi) 
 {
   this.Invoke(mi);
 }
Run Code Online (Sandbox Code Playgroud)

其中mi是System.Windows.Forms.MethodInvoker mi.

调用的方法只是更新一个窗口控件(列表框),并在创建用户控件时进行初始化,并且永远不会更改.

所以有两个问题

  1. 是否需要锁?
  2. 它可能会导致问题吗?

c# invoke winforms

2
推荐指数
1
解决办法
904
查看次数

反射GetValue给出了一个TargetException(非静态方法需要一个目标)

我有一个webservice控制器,它具有公共静态属性,这是webservices.我使用反射来调用这些web服务上的方法.

当所有webservice属性都是静态的时,根本没有问题.这很适合使用反射调用webservicecontroller中的方法:

Type wsControllerType = typeof(wsController);
PropertyInfo WebserviceProperty = wsControllerType.GetProperty(wsName, Some bindingflags);
MethodInfo method = WebserviceProperty.PropertyType.GetMethod(methodname);
method.Invoke(WebserviceProperty.GetValue(null, null), parameters);
Run Code Online (Sandbox Code Playgroud)

webservicecontroller将转换为单例,因此将删除静态Web服务属性.

当我尝试通过反射调用方法时,我在最后一部分得到了一个TargetException(WebserviceController.GetValue(null,null).

我尝试过多种方法,但无法让它发挥作用.我想我错过了一些简单的事情......谁可以提供帮助?

c# reflection singleton invoke

2
推荐指数
1
解决办法
2486
查看次数

在WPF,C#中调用控件

大家好,我将我的一个项目从Windowsforms切换到WPF。到目前为止,我使用这段代码来调用来自另一个线程的数据的GUI对象:

this.Invoke(new Action<NewDiagPacketArrivedEventArgs>(DoSomething), e);
Run Code Online (Sandbox Code Playgroud)

我如何在WPF中做同样的事情?我发现了一些有关使用调度程序的帖子,但是我无法使它正常工作。我想有一个简单的解决方案。如果您知道有关此主题的任何指南,将不胜感激。

谢谢

c# wpf invoke thread-safety

2
推荐指数
1
解决办法
3387
查看次数